#pragma once

namespace img {

template <class IR, class OR>
void downsample(IR const & ir, OR & or, unsigned scale_x, unsigned scale_y);

template <class IR, class OR>
inline void downsample(IR const & ir, OR & or, unsigned scale)
	{ return downsample(ir, or, scale, scale); }

/// dimensions of output raster should exceed scaled dimensions of input raster,
/// and exceed area must be filled
template <class IR, class OR>
void upsample(IR const & ir, OR & or, unsigned scale_x, unsigned scale_y);

template <class IR, class OR>
inline void upsample(IR const & ir, OR & or, unsigned scale)
	{ return upsample(ir, or, scale, scale); }

} //namespace img
